Template, Layouts và Views
Trong SkillDo CMS v8, giao diện được xây dựng bằng Blade Templating language. Tuy nhiên, bạn TUYỆT ĐỐI KHÔNG SỬ DỤNG các cú pháp mặc định của Laravel như @yield, @section, hay @extends.
Hệ thống cung cấp một kiến trúc linh hoạt hơn thông qua các class Theme, kết hợp với ThemeLayoutView để hỗ trợ tối đa việc tái sử dụng, kế thừa thư mục cho khái niệm Theme Child.
Cấu trúc giao diện sẽ chia thành 2 khái niệm là Layouts (Sườn bên ngoài) và Views (Ruột chức năng bên trong được nạp vào sườn).
1. Hệ Thống Layouts (Khung Sườn Bên Ngoài)
Tất cả Layout bắt buộc nằm trong thư mục: views/ten-theme/layouts/.
Mỗi layout là một file HTML đầy đủ cấu trúc khung trang.
Danh Sách Layout Mặc Định
| File | Mô tả |
|---|---|
template-home.blade.php | Khung layout riêng của trang chủ |
template-full-width.blade.php | Khung tràn viền (Không có sidebar) |
template-sidebar-right.blade.php | Khung có sidebar phải |
template-sidebar-left.blade.php | Khung có sidebar trái |
template-user.blade.php | Layout khu vực hiển thị trang tài khoản Dashboard |
template-empty.blade.php | Layout rỗng (Không có header/footer) |
Cách Khởi Tạo Một Layout Tuỳ Chỉnh
Bạn có thể tạo một file Layout bất kì (VD: template-demo.blade.php) và nhúng các khối Header/Footer bằng hàm Theme::partial(). Nội dung tự động của View sẽ đổ vào Layout thông qua hàm {!! Theme::content() !!}.
{{--
Layout-name: Template Tùy Chỉnh
--}}
<!DOCTYPE html>
<html lang="{{ Language::current() }}" @do_action('in_tag_html')>
{!! Theme::partial('include/head') !!}
<body @do_action('in_tag_body')>
<!-- Nhúng Gọi file header nằm ở views/my-theme/include/header.blade.php -->
{!! Theme::partial('include/header') !!}
<div class="container my-layout">
<!-- ĐÂY LÀ KHU VỰC TỰ ĐỘNG ĐỔ VIEW VÀO LAYOUT -->
{!! Theme::content() !!}
</div>
@do_action('template_wrapper_after')
{!! Theme::partial('include/footer') !!}
</body>
</html>
(Ghi chú: Comment {{-- Layout-name: ... --}} trên đầu giúp Quản trị viên nhìn thấy Layout của bạn trong Menu chọn Giao Diện ở Admin Panel).
2. Hệ Thống Views (Giao Diện Nội Dung Chi Tiết)
Views là phần giao diện lõi sẽ được nạp động vào thẻ {!! Theme::content() !!} của Layout. Các file Views chính nằm thẳng ở thư mục Root của Theme: views/ten-theme/.